import Vue from 'vue'
import Router from 'vue-router'
import {appRouter, routes} from './routes'


Vue.use(Router)

const router = new Router({
  mode: 'history',   //去掉浏览器中的 #/     history
  routes,
  scrollBehavior() {      // 当切换到新路由时，想要页面滚到顶部，或者是保持原先的滚动位置
    return { x: 0, y: 0 }
  }
})



const originalPush = Router.prototype.push;
Router.prototype.push = function push(location) {
  return originalPush.call(this, location).catch(err => err)
}





//路由守卫  跳转之前进行限制
router.beforeEach((to,from,next)=>{

  let isLogin = sessionStorage.getItem('isLogin');
  //1:如果是登出操作，那么直接将sessionStorage清空，并跳转到登录页面
  if(to.path=="/logout"){
    sessionStorage.clear()
    next({path:'/login'})
  }else if(isLogin==null && to.path!=='/login'){
    //2:如果没有获取到值，则说明还没登录，那直接让用户去登录页面
    next('/login')
  }else{
    next()
  }
})


//用户退出后，强制刷新页面
router.afterEach((to,from)=>{
  if(from.path != '/login' && from.path != '/' && to.path == '/login'){
    window.location.reload();
  }
})




export default router
